#include <iostream>
#include <vector>
#include "circlist.h"

using namespace std;
int main() {
	int n, k;
	cin >> n >> k;
	circchain<int>circle;//新建循环链表
	//填充链表
	for (int i = 0; i < n; i++) { circle.insert(i+1); }
	//记录当前位置
	int current_pos=0;
	while (circle.getSize() > 1) {
		//k-1是计数转换为索引，%size是循环处理，current+k是从current下一个数第k个
		//current+k-1是从currents数第k个1对象的索引
		current_pos=(current_pos+k-1)%circle.getSize();
		
		cout<<circle.remove(current_pos);
		cout<<"->";
		//更新原因：删除元素后链表大小会变小，防止current_pos=4,size=4,那么此时current_pos就越界了。
		current_pos=current_pos%circle.getSize();
		
	}
	//还剩下一个元素
	cout << circle.getValue();
	return 0;
}

